package br.com.uti.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import br.com.uti.factory.ConectionFactory;
import br.com.uti.model.Paciente;

public class PacienteDAO extends ConectionFactory {
	
	private static PacienteDAO instancia;
	
	public static PacienteDAO getInstancia()
	{
		if (instancia == null)
			instancia = new PacienteDAO();
		return instancia;
	}
	
	public ArrayList<Paciente> listarTodos()
	{
		Connection conexao = null;
		conexao = CriarConexao();
		PreparedStatement pstat = null;
		ResultSet rs = null;
		
		ArrayList<Paciente> pacientes = null;
		pacientes = new ArrayList<Paciente>();
		
		try 
		{
			pstat = conexao.prepareStatement("select * from \"Paciente\" order by nome");
			rs = pstat.executeQuery();
			
			while(rs.next())
			{
				Paciente paciente = new Paciente();
				
				paciente.setId_paciente(rs.getString("id_paciente"));
				paciente.setSexo(rs.getString("sexo"));
				paciente.setNome(rs.getString("nome"));
				paciente.setData_nascimento(rs.getString("data_nascimento"));
				
				pacientes.add(paciente);
			}
		}
		catch (Exception e)
		{
			System.out.println("Erro ao listar todos os clientes");
			e.printStackTrace();
		}
		finally
		{
			FecharConexao(conexao, pstat, rs);
		}
		
		return pacientes;
	}

}
